1. Field
One or more embodiments of the present invention relate to a method, medium, and apparatus for migrating a task, which is currently allocated to a processor from among a plurality of processors included in a multi-processor system, from the processor to another processor in order for load balancing and even power consumption in an operating system.
2. Description of the Related Art
Technological development has reduced the size of electrical circuits and clock cycle time. As improvement of electrical circuit performance slows down due to increased power consumption of chips, current processor architecture is developing in a direction where the storage capacity of a chip is increased to allow for the mounting of a plurality of processors on the chip. Since parallelism, a processing design in which a plurality of tasks are processed simultaneously, can be implemented in this multi-processor environment, significant performance enhancement can be expected as compared to that of a single-processor environment. However, it has been discovered that system performance fails to increase in proportion to an increase in the number of processors due to load imbalance. That is, tasks are not equally distributed to all processors and executed by the processors. Instead, more tasks are allocated to a specified processor. In order to solve this problem, load balancing technology, which migrates tasks from processors with more loads to other processors with less loads, is being explored as a solution.
Meanwhile, a conventional embedded system, which is additionally included in a product or a solution to execute a certain task, generally requires less computation than a universal system. However, technological advancement has increased the amount of data to be processed, thereby requiring better processing capabilities. Accordingly, the conventional embedded system is developing into a multi-processor-based embedded system having two or more processors.
The multi-processor-based embedded system can be applied in various fields such as portable terminals, automotive control, home appliances, medical automation, and sensor networks. Due to the requirements and limitations of an environment in which the multi-processor-based embedded system operates, the stable and high performance of the multi-processor-based embedded system must be guaranteed in a low-power environment. In particular, the multi-processor-based embedded system may be required to perform task migration due to the limited power that can be supplied to its processors, unlike load imbalance which occurs in a conventional operating system. For example, when there is a lack of power supplied to processors, a clock frequency is limited. Thus, the performance of task execution may deteriorate. On the contrary, when power is supplied mainly to a specified processor, a hot spot may be generated due to generation of heat. Consequently, a timing error may occur, or a circuit may be physically damaged. Therefore, in the multi-processor-based embedded system, it is required to appropriately distribute tasks among processors which are to execute the tasks and, when necessary, migrate some of the tasks between the processors, in order to maintain the power consumption of the processors at an equal level.